<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>BookManager</title>
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="BookManager";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-all.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../mmj/lang/Axiom.html" title="class in mmj.lang"><span class="strong">Prev Class</span></a></li>
<li><a href="../../mmj/lang/BookManager.SectionMObjIterator.html" title="class in mmj.lang"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?mmj/lang/BookManager.html" target="_top">Frames</a></li>
<li><a href="BookManager.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested_class_summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">mmj.lang</div>
<h2 title="Class BookManager" class="title">Class BookManager</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>mmj.lang.BookManager</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../mmj/tl/TheoremLoaderCommitListener.html" title="interface in mmj.tl">TheoremLoaderCommitListener</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="strong">BookManager</span>
extends java.lang.Object
implements <a href="../../mmj/tl/TheoremLoaderCommitListener.html" title="interface in mmj.tl">TheoremLoaderCommitListener</a></pre>
<div class="block">BookManager is a "helper" class that is used to keep track of Chapter and
 Section definitions for an input Metamath database and its objects (called
 "MObj"s herein.)
 <p>
 BookManager keeps track of input Chapters and Sections from a .mm database as
 the data is input, while LogicalSystem controls assigning Section and MObjNbr
 data items to BookManager's Chapters and Sections. This is an important
 point: BookManager is called during the FileLoad process as each MObj is
 created so that the BookManager can assign SectionMObjNbrs in the correct
 order.
 <p
 . By "Chapter" we refer to a portion of a Metamath .mm file beginning with a
 Metamath Comment statement ("$(") whose first token (after "$(") begins with
 "#*#*". The "title" is extracted from the Metamath comment by stringing
 together the non-whitespace, non-"#*#*"-prefixed tokens. (Norm refers to
 these Chapters as "Sections" and our Sections and "Sub-Sections").
 <p>
 A "Section" is similar to Chapter except that it is contained within a
 Chapter and the identifying token prefix string is "=-=-".
 <p>
 In some cases there may not be a Section header within a Chapter, and in that
 case the Chapter title is used for the Section title and a default-Section
 must be automatically generated by the system.
 <p>
 Likewise, if a valid Chapter comment statement has not been found before
 Metamath objects or a Section comment statement are input, then a default
 Chapter with a default title is automatically generated by the system.
 <p>
 It is possible that neither Chapters or Sections are used by an input .mm
 database. In this case everything is loaded into a single default Chapter
 with four default Sections.
 <p>
 <code>
 Note: Input Sections are physically split and assigned
       sequential numbers based on the MObj content type
       as shown below. The Section numbers are multiples of
       1, 2, 3, or 4 as follows:<br>
       <br>
       1 = Cnst or Var symbols<br>
       2 = VarHyp<br>
       3 = Syntax Axioms<br>
       4 = Theorems, Logic Axioms and LogHyps.<br>
       <br>
       Thus, the first input Section is assigned
       Section numbers 1, 2, 3, and 4. The 2nd input
       Section is assigned Section numbers 5, 6, 7
       and 8. And so on. These numbers are assigned
       across Chapter boundaries -- meaning that
       Section numbers do not reset to 1 at the
       beginning of each chapter.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested_class_summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.SectionMObjIterator.html" title="class in mmj.lang">BookManager.SectionMObjIterator</a></strong></code>
<div class="block">Nested class which implements Iterable for a two-dimensional array of
 MObjs by Section and MObjNbr within Section.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../mmj/lang/BookManager.html#BookManager(boolean, java.lang.String)">BookManager</a></strong>(boolean&nbsp;enabled,
           java.lang.String&nbsp;provableLogicStmtTypeParm)</code>
<div class="block">Sole constructor for BookManager.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#addNewChapter(java.lang.String)">addNewChapter</a></strong>(java.lang.String&nbsp;chapterTitle)</code>
<div class="block">Adds a new Chapter to the BookManager's collection.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#addNewSection(java.lang.String)">addNewSection</a></strong>(java.lang.String&nbsp;sectionTitle)</code>
<div class="block">Adds a new Section to the current Chapter in the BookManager's collection</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#assignChapterSectionNbrs(mmj.lang.Axiom)">assignChapterSectionNbrs</a></strong>(<a href="../../mmj/lang/Axiom.html" title="class in mmj.lang">Axiom</a>&nbsp;axiom)</code>
<div class="block">Assigns Chapter and SectionNbrs to an axiom.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#assignChapterSectionNbrs(mmj.lang.LogHyp)">assignChapterSectionNbrs</a></strong>(<a href="../../mmj/lang/LogHyp.html" title="class in mmj.lang">LogHyp</a>&nbsp;logHyp)</code>
<div class="block">Assigns Chapter and SectionNbrs to a logical hypothesis.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#assignChapterSectionNbrs(mmj.lang.Sym)">assignChapterSectionNbrs</a></strong>(<a href="../../mmj/lang/Sym.html" title="class in mmj.lang">Sym</a>&nbsp;sym)</code>
<div class="block">Assigns Chapter and SectionNbrs to either a Cnst or a Var.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#assignChapterSectionNbrs(mmj.lang.Theorem)">assignChapterSectionNbrs</a></strong>(<a href="../../mmj/lang/Theorem.html" title="class in mmj.lang">Theorem</a>&nbsp;theorem)</code>
<div class="block">Assigns Chapter and SectionNbrs to a theorem.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#assignChapterSectionNbrs(mmj.lang.VarHyp)">assignChapterSectionNbrs</a></strong>(<a href="../../mmj/lang/VarHyp.html" title="class in mmj.lang">VarHyp</a>&nbsp;varHyp)</code>
<div class="block">Assigns Chapter and SectionNbrs to a VarHyp.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.util.BitSet[]</code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#buildChapterDependencies(java.util.BitSet[])">buildChapterDependencies</a></strong>(java.util.BitSet[]&nbsp;bs)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#commit(mmj.tl.MMTTheoremSet)">commit</a></strong>(<a href="../../mmj/tl/MMTTheoremSet.html" title="class in mmj.tl">MMTTheoremSet</a>&nbsp;mmtTheoremSet)</code>
<div class="block">Stores new MObj's from the TheoremLoader as part of a load operation.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#convertOrigSectionNbr(int)">convertOrigSectionNbr</a></strong>(int&nbsp;i)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../mmj/lang/Chapter.html" title="class in mmj.lang">Chapter</a></code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#getChapter(int)">getChapter</a></strong>(int&nbsp;chapterNbr)</code>
<div class="block">Returns the Chapter corresponding to a given Chapter Nbr.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.util.BitSet[]</code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#getChapterDependencies(mmj.lang.LogicalSystem)">getChapterDependencies</a></strong>(<a href="../../mmj/lang/LogicalSystem.html" title="class in mmj.lang">LogicalSystem</a>&nbsp;logicalSystem)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../mmj/lang/Chapter.html" title="class in mmj.lang">Chapter</a></code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#getChapterForSectionNbr(int)">getChapterForSectionNbr</a></strong>(int&nbsp;sectionNbr)</code>
<div class="block">Returns the Chapter corresponding to a given Section Nbr.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.util.List&lt;<a href="../../mmj/lang/Chapter.html" title="class in mmj.lang">Chapter</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#getChapterList()">getChapterList</a></strong>()</code>
<div class="block">Returns the List of Chapters in the BookManager.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#getChapterMaxMObjSeq(mmj.lang.Chapter)">getChapterMaxMObjSeq</a></strong>(<a href="../../mmj/lang/Chapter.html" title="class in mmj.lang">Chapter</a>&nbsp;chapter)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#getChapterMinMObjSeq(mmj.lang.Chapter)">getChapterMinMObjSeq</a></strong>(<a href="../../mmj/lang/Chapter.html" title="class in mmj.lang">Chapter</a>&nbsp;chapter)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.String[]</code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#getChapterValuesForSearch()">getChapterValuesForSearch</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.util.BitSet[]</code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#getDirectChapterDependencies(mmj.lang.LogicalSystem)">getDirectChapterDependencies</a></strong>(<a href="../../mmj/lang/LogicalSystem.html" title="class in mmj.lang">LogicalSystem</a>&nbsp;logicalsystem)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.util.BitSet[]</code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#getDirectSectionDependencies(mmj.lang.LogicalSystem)">getDirectSectionDependencies</a></strong>(<a href="../../mmj/lang/LogicalSystem.html" title="class in mmj.lang">LogicalSystem</a>&nbsp;logicalsystem)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#getOrigSectionNbr(int)">getOrigSectionNbr</a></strong>(int&nbsp;i)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../mmj/lang/Section.html" title="class in mmj.lang">Section</a></code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#getSection(int)">getSection</a></strong>(int&nbsp;sectionNbr)</code>
<div class="block">Returns the Section corresponding to a given Section Nbr.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.util.BitSet[]</code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#getSectionDependencies(mmj.lang.LogicalSystem)">getSectionDependencies</a></strong>(<a href="../../mmj/lang/LogicalSystem.html" title="class in mmj.lang">LogicalSystem</a>&nbsp;logicalsystem)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.util.List&lt;<a href="../../mmj/lang/Section.html" title="class in mmj.lang">Section</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#getSectionList()">getSectionList</a></strong>()</code>
<div class="block">Returns the List of Sections in the BookManager.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#getSectionMaxMObjSeq(mmj.lang.Section)">getSectionMaxMObjSeq</a></strong>(<a href="../../mmj/lang/Section.html" title="class in mmj.lang">Section</a>&nbsp;section)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#getSectionMinMObjSeq(mmj.lang.Section)">getSectionMinMObjSeq</a></strong>(<a href="../../mmj/lang/Section.html" title="class in mmj.lang">Section</a>&nbsp;section)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../mmj/lang/MObj.html" title="class in mmj.lang">MObj</a>[][]</code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#getSectionMObjArray(mmj.lang.LogicalSystem)">getSectionMObjArray</a></strong>(<a href="../../mmj/lang/LogicalSystem.html" title="class in mmj.lang">LogicalSystem</a>&nbsp;logicalSystem)</code>
<div class="block">Returns a two-dimensional array of MObjs by Section and MObjNbr within
 Section.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.Iterable&lt;<a href="../../mmj/lang/MObj.html" title="class in mmj.lang">MObj</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#getSectionMObjIterable(mmj.lang.LogicalSystem)">getSectionMObjIterable</a></strong>(<a href="../../mmj/lang/LogicalSystem.html" title="class in mmj.lang">LogicalSystem</a>&nbsp;logicalSystem)</code>
<div class="block">Returns an Iterable over all of the MObjs assigned to Sections.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.lang.String[][]</code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#getSectionValuesForSearch()">getSectionValuesForSearch</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#getTotalNbrMObjs()">getTotalNbrMObjs</a></strong>()</code>
<div class="block">Returns the count of all MObj objects assigned to Sections within the
 BookManager.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#invalidateChapterSectionDependencies()">invalidateChapterSectionDependencies</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#isEnabled()">isEnabled</a></strong>()</code>
<div class="block">Returns BookManager enabled flag, which indicates whether or not the
 BookManager is in use within the currently system.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../mmj/lang/Chapter.html" title="class in mmj.lang">Chapter</a></code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#lookupChapterByTitle(java.lang.String)">lookupChapterByTitle</a></strong>(java.lang.String&nbsp;s)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../mmj/lang/Section.html" title="class in mmj.lang">Section</a></code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#lookupSectionByChapterAndTitle(mmj.lang.Chapter, java.lang.String, int)">lookupSectionByChapterAndTitle</a></strong>(<a href="../../mmj/lang/Chapter.html" title="class in mmj.lang">Chapter</a>&nbsp;chapter,
                              java.lang.String&nbsp;s,
                              int&nbsp;i)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../mmj/lang/BookManager.html#recomputeAssrtNbrProofRefs(mmj.lang.LogicalSystem)">recomputeAssrtNbrProofRefs</a></strong>(<a href="../../mmj/lang/LogicalSystem.html" title="class in mmj.lang">LogicalSystem</a>&nbsp;logicalSystem)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="BookManager(boolean, java.lang.String)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>BookManager</h4>
<pre>public&nbsp;BookManager(boolean&nbsp;enabled,
           java.lang.String&nbsp;provableLogicStmtTypeParm)</pre>
<div class="block">Sole constructor for BookManager.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>enabled</code> - Book Manager enabled? If not enabled then zero Chapter and
            Section numbers are assigned and no data is retained.</dd><dd><code>provableLogicStmtTypeParm</code> - String identifying theorems, logic
            axioms and logical hypotheses (normally = "|-" in Metamath,
            matched against the first symbol of the object's formula).</dd></dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="getOrigSectionNbr(int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOrigSectionNbr</h4>
<pre>public static&nbsp;int&nbsp;getOrigSectionNbr(int&nbsp;i)</pre>
</li>
</ul>
<a name="convertOrigSectionNbr(int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertOrigSectionNbr</h4>
<pre>public static&nbsp;int&nbsp;convertOrigSectionNbr(int&nbsp;i)</pre>
</li>
</ul>
<a name="commit(mmj.tl.MMTTheoremSet)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>commit</h4>
<pre>public&nbsp;void&nbsp;commit(<a href="../../mmj/tl/MMTTheoremSet.html" title="class in mmj.tl">MMTTheoremSet</a>&nbsp;mmtTheoremSet)</pre>
<div class="block">Stores new MObj's from the TheoremLoader as part of a load operation.
 <p>
 BookManager is called to perform its updates en masse at the end of the
 TheoremLoader update. A failure of BookManager to complete the updates is
 deemed irreversible and severe, warranting a message to the user to
 manually restart mmj2.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../mmj/tl/TheoremLoaderCommitListener.html#commit(mmj.tl.MMTTheoremSet)">commit</a></code>&nbsp;in interface&nbsp;<code><a href="../../mmj/tl/TheoremLoaderCommitListener.html" title="interface in mmj.tl">TheoremLoaderCommitListener</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>mmtTheoremSet</code> - the set of MMTTheoremFile object added or updated by
            TheoremLoader.</dd></dl>
</li>
</ul>
<a name="isEnabled()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isEnabled</h4>
<pre>public&nbsp;boolean&nbsp;isEnabled()</pre>
<div class="block">Returns BookManager enabled flag, which indicates whether or not the
 BookManager is in use within the currently system.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>BookManager enabled flag.</dd></dl>
</li>
</ul>
<a name="getChapter(int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getChapter</h4>
<pre>public&nbsp;<a href="../../mmj/lang/Chapter.html" title="class in mmj.lang">Chapter</a>&nbsp;getChapter(int&nbsp;chapterNbr)</pre>
<div class="block">Returns the Chapter corresponding to a given Chapter Nbr.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>chapterNbr</code> - Chapter number.</dd>
<dt><span class="strong">Returns:</span></dt><dd>Chapter or null if no such chapter exists.</dd></dl>
</li>
</ul>
<a name="getChapterForSectionNbr(int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getChapterForSectionNbr</h4>
<pre>public&nbsp;<a href="../../mmj/lang/Chapter.html" title="class in mmj.lang">Chapter</a>&nbsp;getChapterForSectionNbr(int&nbsp;sectionNbr)</pre>
<div class="block">Returns the Chapter corresponding to a given Section Nbr.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>sectionNbr</code> - Section number.</dd>
<dt><span class="strong">Returns:</span></dt><dd>Chapter or null if no such section exists.</dd></dl>
</li>
</ul>
<a name="getSection(int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSection</h4>
<pre>public&nbsp;<a href="../../mmj/lang/Section.html" title="class in mmj.lang">Section</a>&nbsp;getSection(int&nbsp;sectionNbr)</pre>
<div class="block">Returns the Section corresponding to a given Section Nbr.
 <p>
 Note: no processing occurs if BookManager is not enabled.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>sectionNbr</code> - Section number.</dd>
<dt><span class="strong">Returns:</span></dt><dd>Chapter or null if no such section exists or BookManager is not
         enabled.</dd></dl>
</li>
</ul>
<a name="addNewChapter(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addNewChapter</h4>
<pre>public&nbsp;void&nbsp;addNewChapter(java.lang.String&nbsp;chapterTitle)</pre>
<div class="block">Adds a new Chapter to the BookManager's collection.
 <p>
 Note: no processing occurs if BookManager is not enabled.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>chapterTitle</code> - Chapter Title or descriptive String.</dd></dl>
</li>
</ul>
<a name="addNewSection(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addNewSection</h4>
<pre>public&nbsp;void&nbsp;addNewSection(java.lang.String&nbsp;sectionTitle)</pre>
<div class="block">Adds a new Section to the current Chapter in the BookManager's collection
 <p>
 If no prior Chapter has been input a default Chapter is automatically
 created.
 <p>
 Note that one call to addNewSection() actually creates the 4 Sections
 (Symbols, VarHyps, Syntax and Logic) that correspond to one input .mm
 database section.
 <p>
 Note: no processing occurs if BookManager is not enabled.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>sectionTitle</code> - or descriptive String.</dd></dl>
</li>
</ul>
<a name="assignChapterSectionNbrs(mmj.lang.Axiom)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>assignChapterSectionNbrs</h4>
<pre>public&nbsp;void&nbsp;assignChapterSectionNbrs(<a href="../../mmj/lang/Axiom.html" title="class in mmj.lang">Axiom</a>&nbsp;axiom)</pre>
<div class="block">Assigns Chapter and SectionNbrs to an axiom.
 <p>
 If the Type Code of the Axiom is equal to the Provable Logic Statement
 Type code parameter then the input Axiom is assigned to the current
 "Logic" Section. Otherwise it is considered to be "Syntax".
 <p>
 This function is provided for use by the LogicalSystem during initial
 load of an input .mm database. If the MObj has already been assigned
 SectionMObjNbr then no update is performed (this is significant normally
 only for re-declared Vars because only Metamath Vars can be validly
 re-declared -- this happens with in-scope local Var declarations.) no
 update
 <p>
 Note: no processing occurs if BookManager is not enabled.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axiom</code> - newly created Axiom.</dd></dl>
</li>
</ul>
<a name="assignChapterSectionNbrs(mmj.lang.Theorem)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>assignChapterSectionNbrs</h4>
<pre>public&nbsp;void&nbsp;assignChapterSectionNbrs(<a href="../../mmj/lang/Theorem.html" title="class in mmj.lang">Theorem</a>&nbsp;theorem)</pre>
<div class="block">Assigns Chapter and SectionNbrs to a theorem.
 <p>
 Note: "syntax theorems" are assigned to the current "Logic" section, not
 "Syntax".
 <p>
 This function is provided for use by the LogicalSystem during initial
 load of an input .mm database. If the MObj has already been assigned
 SectionMObjNbr then no update is performed (this is significant normally
 only for re-declared Vars because only Metamath Vars can be validly
 re-declared -- this happens with in-scope local Var declarations.) no
 update
 <p>
 Note: no processing occurs if BookManager is not enabled.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>theorem</code> - newly created Theorem.</dd></dl>
</li>
</ul>
<a name="assignChapterSectionNbrs(mmj.lang.LogHyp)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>assignChapterSectionNbrs</h4>
<pre>public&nbsp;void&nbsp;assignChapterSectionNbrs(<a href="../../mmj/lang/LogHyp.html" title="class in mmj.lang">LogHyp</a>&nbsp;logHyp)</pre>
<div class="block">Assigns Chapter and SectionNbrs to a logical hypothesis.
 <p>
 This function is provided for use by the LogicalSystem during initial
 load of an input .mm database. If the MObj has already been assigned
 SectionMObjNbr then no update is performed (this is significant normally
 only for re-declared Vars because only Metamath Vars can be validly
 re-declared -- this happens with in-scope local Var declarations.) no
 update
 <p>
 Note: no processing occurs if BookManager is not enabled.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>logHyp</code> - newly created LogHyp.</dd></dl>
</li>
</ul>
<a name="assignChapterSectionNbrs(mmj.lang.VarHyp)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>assignChapterSectionNbrs</h4>
<pre>public&nbsp;void&nbsp;assignChapterSectionNbrs(<a href="../../mmj/lang/VarHyp.html" title="class in mmj.lang">VarHyp</a>&nbsp;varHyp)</pre>
<div class="block">Assigns Chapter and SectionNbrs to a VarHyp.
 <p>
 This function is provided for use by the LogicalSystem during initial
 load of an input .mm database. If the MObj has already been assigned
 SectionMObjNbr then no update is performed (this is significant normally
 only for re-declared Vars because only Metamath Vars can be validly
 re-declared -- this happens with in-scope local Var declarations.) no
 update
 <p>
 Note: no processing occurs if BookManager is not enabled.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>varHyp</code> - newly created VarHyp</dd></dl>
</li>
</ul>
<a name="assignChapterSectionNbrs(mmj.lang.Sym)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>assignChapterSectionNbrs</h4>
<pre>public&nbsp;void&nbsp;assignChapterSectionNbrs(<a href="../../mmj/lang/Sym.html" title="class in mmj.lang">Sym</a>&nbsp;sym)</pre>
<div class="block">Assigns Chapter and SectionNbrs to either a Cnst or a Var.
 <p>
 This function is provided for use by the LogicalSystem during initial
 load of an input .mm database. If the MObj has already been assigned
 SectionMObjNbr then no update is performed (this is significant normally
 only for re-declared Vars because only Metamath Vars can be validly
 re-declared -- this happens with in-scope local Var declarations.) no
 update
 <p>
 Note: no processing occurs if BookManager is not enabled.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>sym</code> - newly created Sym.</dd></dl>
</li>
</ul>
<a name="getTotalNbrMObjs()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTotalNbrMObjs</h4>
<pre>public&nbsp;int&nbsp;getTotalNbrMObjs()</pre>
<div class="block">Returns the count of all MObj objects assigned to Sections within the
 BookManager.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>total number of MObjs added so far.</dd></dl>
</li>
</ul>
<a name="getChapterList()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getChapterList</h4>
<pre>public&nbsp;java.util.List&lt;<a href="../../mmj/lang/Chapter.html" title="class in mmj.lang">Chapter</a>&gt;&nbsp;getChapterList()</pre>
<div class="block">Returns the List of Chapters in the BookManager.
 <p>
 Note: if BookManager is not enabled, the List returned will not be null,
 it will be empty.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>List of Chapters.</dd></dl>
</li>
</ul>
<a name="lookupChapterByTitle(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lookupChapterByTitle</h4>
<pre>public&nbsp;<a href="../../mmj/lang/Chapter.html" title="class in mmj.lang">Chapter</a>&nbsp;lookupChapterByTitle(java.lang.String&nbsp;s)</pre>
</li>
</ul>
<a name="lookupSectionByChapterAndTitle(mmj.lang.Chapter, java.lang.String, int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lookupSectionByChapterAndTitle</h4>
<pre>public&nbsp;<a href="../../mmj/lang/Section.html" title="class in mmj.lang">Section</a>&nbsp;lookupSectionByChapterAndTitle(<a href="../../mmj/lang/Chapter.html" title="class in mmj.lang">Chapter</a>&nbsp;chapter,
                                     java.lang.String&nbsp;s,
                                     int&nbsp;i)</pre>
</li>
</ul>
<a name="getChapterValuesForSearch()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getChapterValuesForSearch</h4>
<pre>public&nbsp;java.lang.String[]&nbsp;getChapterValuesForSearch()</pre>
</li>
</ul>
<a name="getSectionValuesForSearch()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSectionValuesForSearch</h4>
<pre>public&nbsp;java.lang.String[][]&nbsp;getSectionValuesForSearch()</pre>
</li>
</ul>
<a name="invalidateChapterSectionDependencies()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>invalidateChapterSectionDependencies</h4>
<pre>public&nbsp;void&nbsp;invalidateChapterSectionDependencies()</pre>
</li>
</ul>
<a name="recomputeAssrtNbrProofRefs(mmj.lang.LogicalSystem)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>recomputeAssrtNbrProofRefs</h4>
<pre>public&nbsp;void&nbsp;recomputeAssrtNbrProofRefs(<a href="../../mmj/lang/LogicalSystem.html" title="class in mmj.lang">LogicalSystem</a>&nbsp;logicalSystem)</pre>
</li>
</ul>
<a name="getChapterDependencies(mmj.lang.LogicalSystem)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getChapterDependencies</h4>
<pre>public&nbsp;java.util.BitSet[]&nbsp;getChapterDependencies(<a href="../../mmj/lang/LogicalSystem.html" title="class in mmj.lang">LogicalSystem</a>&nbsp;logicalSystem)</pre>
</li>
</ul>
<a name="getDirectChapterDependencies(mmj.lang.LogicalSystem)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDirectChapterDependencies</h4>
<pre>public&nbsp;java.util.BitSet[]&nbsp;getDirectChapterDependencies(<a href="../../mmj/lang/LogicalSystem.html" title="class in mmj.lang">LogicalSystem</a>&nbsp;logicalsystem)</pre>
</li>
</ul>
<a name="buildChapterDependencies(java.util.BitSet[])">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildChapterDependencies</h4>
<pre>public&nbsp;java.util.BitSet[]&nbsp;buildChapterDependencies(java.util.BitSet[]&nbsp;bs)</pre>
</li>
</ul>
<a name="getChapterMinMObjSeq(mmj.lang.Chapter)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getChapterMinMObjSeq</h4>
<pre>public&nbsp;int&nbsp;getChapterMinMObjSeq(<a href="../../mmj/lang/Chapter.html" title="class in mmj.lang">Chapter</a>&nbsp;chapter)</pre>
</li>
</ul>
<a name="getChapterMaxMObjSeq(mmj.lang.Chapter)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getChapterMaxMObjSeq</h4>
<pre>public&nbsp;int&nbsp;getChapterMaxMObjSeq(<a href="../../mmj/lang/Chapter.html" title="class in mmj.lang">Chapter</a>&nbsp;chapter)</pre>
</li>
</ul>
<a name="getSectionMinMObjSeq(mmj.lang.Section)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSectionMinMObjSeq</h4>
<pre>public&nbsp;int&nbsp;getSectionMinMObjSeq(<a href="../../mmj/lang/Section.html" title="class in mmj.lang">Section</a>&nbsp;section)</pre>
</li>
</ul>
<a name="getSectionMaxMObjSeq(mmj.lang.Section)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSectionMaxMObjSeq</h4>
<pre>public&nbsp;int&nbsp;getSectionMaxMObjSeq(<a href="../../mmj/lang/Section.html" title="class in mmj.lang">Section</a>&nbsp;section)</pre>
</li>
</ul>
<a name="getSectionDependencies(mmj.lang.LogicalSystem)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSectionDependencies</h4>
<pre>public&nbsp;java.util.BitSet[]&nbsp;getSectionDependencies(<a href="../../mmj/lang/LogicalSystem.html" title="class in mmj.lang">LogicalSystem</a>&nbsp;logicalsystem)</pre>
</li>
</ul>
<a name="getDirectSectionDependencies(mmj.lang.LogicalSystem)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDirectSectionDependencies</h4>
<pre>public&nbsp;java.util.BitSet[]&nbsp;getDirectSectionDependencies(<a href="../../mmj/lang/LogicalSystem.html" title="class in mmj.lang">LogicalSystem</a>&nbsp;logicalsystem)</pre>
</li>
</ul>
<a name="getSectionList()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSectionList</h4>
<pre>public&nbsp;java.util.List&lt;<a href="../../mmj/lang/Section.html" title="class in mmj.lang">Section</a>&gt;&nbsp;getSectionList()</pre>
<div class="block">Returns the List of Sections in the BookManager.
 <p>
 Note: if BookManager is not enabled, the List returned will not be null,
 it will be empty.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>List of Sections.</dd></dl>
</li>
</ul>
<a name="getSectionMObjIterable(mmj.lang.LogicalSystem)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSectionMObjIterable</h4>
<pre>public&nbsp;java.lang.Iterable&lt;<a href="../../mmj/lang/MObj.html" title="class in mmj.lang">MObj</a>&gt;&nbsp;getSectionMObjIterable(<a href="../../mmj/lang/LogicalSystem.html" title="class in mmj.lang">LogicalSystem</a>&nbsp;logicalSystem)</pre>
<div class="block">Returns an Iterable over all of the MObjs assigned to Sections.
 <p>
 Note: if BookManager is not enabled, the Iterable returned will not be
 null, it will be empty.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>logicalSystem</code> - the mmj2 LogicalSystem object.</dd>
<dt><span class="strong">Returns:</span></dt><dd>List of Sections.</dd></dl>
</li>
</ul>
<a name="getSectionMObjArray(mmj.lang.LogicalSystem)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getSectionMObjArray</h4>
<pre>public&nbsp;<a href="../../mmj/lang/MObj.html" title="class in mmj.lang">MObj</a>[][]&nbsp;getSectionMObjArray(<a href="../../mmj/lang/LogicalSystem.html" title="class in mmj.lang">LogicalSystem</a>&nbsp;logicalSystem)</pre>
<div class="block">Returns a two-dimensional array of MObjs by Section and MObjNbr within
 Section.
 <p>
 Note: if BookManager is not enabled, the array is empty and is allocated
 as <code>new MObj[0][]</code>.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>logicalSystem</code> - the mmj2 LogicalSystem object.</dd>
<dt><span class="strong">Returns:</span></dt><dd>two-dimensional array of MObjs by Section and MObjNbr within
         Section.</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-all.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../mmj/lang/Axiom.html" title="class in mmj.lang"><span class="strong">Prev Class</span></a></li>
<li><a href="../../mmj/lang/BookManager.SectionMObjIterator.html" title="class in mmj.lang"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?mmj/lang/BookManager.html" target="_top">Frames</a></li>
<li><a href="BookManager.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested_class_summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
